/*
  http

    请求报文

      请求首行：GET http://localhost:8000/src/api/product/trademark HTTP/1.1
        
        请求方式：GET(查)、POST(增)、PUT(改：全部改)、DELETE(删)、PATCH(改：部分改)、OPTIONS(预检请求)

          当你使用 cors 解决跨域方案时，发送特殊请求（POST、PUT等）时浏览器会自动先发一个预检请求，
          预检请求通过，才会发送真正请求。
          
          预检请求作用：检测请求是否允许跨域。

        扩展：http 1.1 和 http 2.0 区别？
              http 和 https 的区别？

        如果后端接口采用 GET(查)、POST(增)、PUT(改：全部改)、DELETE(删) 不同请求方式设计的
        这种接口设计风格就是 restful 设计风格
      
      请求头
        token: xxx;  用户唯一标识
        connection: keep-alive; 保持长链接
        content-type: 请求体类型
          application/json json格式
          application/x-www-form-urlencoded form表单 -> key=value&key=value
        
        协商缓存：if-none-match / if-modified-since
        Referer 请求来源地址（防盗链）
        cookie: xxx; 

      空行

      请求体：请求体参数

  响应报文

    响应首行
      响应状态码：
        1xx: 请求还在进行中，还未完成，还需要进一步处理
        2xx: 请求成功 
          200 
        3xx: 请求重定向
          301 永久重定向
          302 临时重定向
          304 协商缓存，重定向到缓存
        4xx: 客户端错误
          401 未授权 unAuthorization
          403 禁止 forbidden
          404 找不到 not found
          407 token 过期
        5xx: 服务端错误
          500 

    响应头
      set-cookie: 设置cookie
      cache-control / expires 强制缓存
      etag / last-modified 协商缓存
      cors 跨域
        access-control-allow-origin 允许哪个地址可以跨域
        access-control-allow-methods 允许哪些请求方式可以跨域
        access-control-allow-headers 允许哪些请求投可以跨域
        access-control-with-credentials 允许携带cookie
        access-control-max-age 预检请求结果的缓存时间

    空行

    响应体
*/
